home *** CD-ROM | disk | FTP | other *** search
/ Multimedia Selection / Multimedia Selection Volume One - CD-ROM / MULTIMEDIA SELECTION____________.ISO / utils / linen5 / linen5.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1993-07-13  |  2.6 KB  |  96 lines

  1. PROGRAM EnumerateLinesInFile;
  2. CONST
  3.      ProgData = 'LINEN5- Free DOS utility: text file enumerator and un-enumerator.';
  4.      ProgDat2 = 'V1.00: July 14, 1993. (c) 1993 by David Daniel Anderson - Reign Ware.';
  5.  
  6.       Usage = 'Usage:  LINEN5 source_file new_destination_file [/r (remove numbers)]';
  7. VAR
  8.    PS1, PS2,
  9.    Line_Current           : String;
  10.    Source_File,Dest_File  : Text;
  11.    Numb                   : Word;
  12.    Remove                 : Boolean;
  13.  
  14. PROCEDURE InitVars;
  15. BEGIN
  16.      Writeln(ProgData);
  17.      Writeln(ProgDat2);
  18.      Writeln;
  19.      Numb := 10000;
  20.      If ParamCount < 2 THEN Begin
  21.         Writeln(Usage);
  22.         Halt;
  23.      End;
  24.      PS1 := ParamStr(1);
  25.      PS2 := ParamStr(2);
  26.      Remove := ((ParamStr(3) = '/r') OR (ParamStr(3) = '/R'));
  27. END;
  28.  
  29. PROCEDURE OpenFiles;
  30. BEGIN
  31.      Assign(Source_File,PS1);
  32. {$I-} Reset(Source_File); {$I+}                    { Check if file exists.}
  33.      IF (IOResult <> 0) THEN                       { If it                }
  34.      BEGIN                                         {    doesn't, then     }
  35.          Writeln('Unable to open "', PS1, '".');   {  quit with message.  }
  36.          Halt;
  37.      END;
  38.  
  39.      Assign(Dest_File,PS2);
  40. {$I-} Reset(Dest_File);  {$I+}
  41.       IF (IOResult <> 0) Then Begin
  42.          Rewrite(Dest_File);
  43.       End
  44.       Else Begin
  45. Writeln('Destination "',PS2,'" exists!  Rename, delete, or specify alternate.');
  46.          Halt;
  47.       End;
  48. END;
  49.  
  50. PROCEDURE PutNumb;
  51. BEGIN
  52.      Writeln('Un-numbered file: ',PS1,'; Numbered file: ',PS2,'.');
  53.  
  54.      REPEAT
  55.           ReadLn(Source_File,Line_Current);
  56.           Numb := Succ(Numb);
  57.           WriteLn(Dest_File,Numb,' ',Line_Current);
  58.      UNTIL Eof(Source_File);
  59. END;
  60.  
  61. PROCEDURE RmvNumb;
  62. VAR
  63.     strlinen  : string[5];
  64.     vallinen  : longint;
  65.     valcode   : integer;
  66. BEGIN
  67.      Writeln('Numbered file: ',PS1,'; Un-numbered file: ',PS2,'.');
  68.  
  69.      REPEAT
  70.           ReadLn(Source_File,Line_Current);
  71.            strlinen := copy(Line_Current,1,5);
  72.            val(strlinen,vallinen,valcode);
  73.            if (valcode <> 0) then begin
  74.               writeln('The first five chars on line one are NOT a valid numeric!');
  75.               writeln('Program aborted.');
  76.               close(Dest_File);
  77.               erase(Dest_File);
  78.               halt;
  79.            end;
  80.           Delete(Line_Current,1,6);
  81.           WriteLn(Dest_File,Line_Current);
  82.      UNTIL Eof(Source_File);
  83. END;
  84.  
  85. BEGIN
  86.      InitVars;
  87.      OpenFiles;
  88.  
  89.      IF Remove THEN RmvNumb
  90.      ELSE PutNumb;
  91.  
  92.      Close(Source_File);
  93.      Close(Dest_File);
  94.      Writeln('Done!');
  95. END.
  96.